/*
 * Light.hpp
 *
 *  Created on: 01/05/2013
 *      Author: gabriel
 */

#ifndef LIGHT_HPP_
#define LIGHT_HPP_
#include "matrix4f.h"
#include "shader.h"
#include <vector>

#ifdef MacOSX
#include "GLee.h"
#include <GLUT/glut.h>
#else
#include "GLee.h"
#include <GL/glut.h>
#endif

class Light {
public:

	float ambient[4];
	float diffuse[4];
	float specular[4];
	float position[4];
	Matrix4f matrix;
	std::vector<Shader> programs;

	Light();

	virtual ~Light();
	void addShader(Shader *program);
	void setColour(float ambientColour[4], float diffuseColour[4], float specularColour[4]);
	void rotate(float angle, float x, float y, float z);
	void translate(float x, float y, float z);
	void setPosition(float x, float y, float z, float w);
	void setShader(Shader *program);
	void setMatrix(Matrix4f &mat);
	void enable();
	void enable1();
	void setup();


};

#endif /* LIGHT_HPP_ */
